using SQLite;

namespace FileImportSystem2.Db.Entities;

/// <summary>
/// 出港账单数据实体类
/// 用于存储出港物流账单数据
/// 包含运单的基本信息、费用信息及匹配状态
/// </summary>
public class OutboundInvoiceData
{
    /// <summary>
    /// 数据日期
    /// 格式为"yyyy-MM-dd"
    /// </summary>
    public string Date { get; set; } = null!; // "yyyy-MM-dd"

    /// <summary>
    /// 运单编号
    /// 作为主键，唯一标识一条出港账单数据
    /// </summary>
    [PrimaryKey]
    public string 单号 { get; set; } = string.Empty;

    /// <summary>
    /// 结算对象名称
    /// 表示该账单的结算方
    /// 可能通过匹配表自动填充
    /// </summary>
    public string 结算对象 { get; set; } = string.Empty;

    /// <summary>
    /// 分部信息
    /// 表示该账单所属的分部
    /// 可能通过匹配表自动填充
    /// </summary>
    public string 分部 { get; set; } = string.Empty;

    /// <summary>
    /// 电子面单账号名称
    /// 运单使用的电子面单账号信息
    /// </summary>
    public string 电子面单账号名称 { get; set; } = string.Empty;

    /// <summary>
    /// 结算重量
    /// 单位为千克(kg)
    /// 用于计算物流费用的重量依据
    /// </summary>
    public Double 结算重量_kg { get; set; }

    /// <summary>
    /// 派费合计金额
    /// 送货上门服务的费用总额
    /// </summary>
    public Double 派费合计 { get; set; }

    /// <summary>
    /// 中转费合计金额
    /// 物流中转过程中产生的费用总额
    /// </summary>
    public Double 中转费合计 { get; set; }

    /// <summary>
    /// 数据匹配状态
    /// 0: 未匹配, 1: 已匹配
    /// 标识该出港账单数据是否已与其他系统数据成功匹配
    /// </summary>
    public int IsMatched { get; set; } = 0; // 0: 未匹配, 1: 已匹配

    /// <summary>
    /// 数据导入时间
    /// 记录数据被导入到系统的时间
    /// 默认值为当前系统时间
    /// </summary>
    public DateTime ImportTime { get; set; } = DateTime.Now;
}